Computer software applications allow users to create a variety of documents to assist them in work, education, and leisure. For example, word processing applications allow users to create letters, articles, books, memoranda, and the like. Spreadsheet applications allow users to store, manipulate, print, and display a variety of alphanumeric data. Such applications have a number of well-known strengths, including rich editing, formatting, and calculation.
To keep up with demand for more advanced functionality for such computer software applications, software developers have begun to use structured data formats, including markup languages, such as Extensible Markup Language (XML), to allow users to annotate a software application document to give the document a useful structure apart from the normal functionality of the software application responsible for creating the document or the visible formatting associated with the document. For example, a user may wish to create on her word processing application a template document for preparation of a resume, a will, or an article that she wishes to transmit to a publisher. By applying structure to the document, persons or institutions receiving the document may make use of the structure by processing the document to utilize data defined by the document structure.
Some word processing applications allow users to annotate a word processing document with XML elements so that the user may define certain data types and data definitions for data inserted into the document. A resume document, for example, may include an “Experience” section in which the user will include present and past work experience. Using XML, the user may desire to mark up the “Experiences” section of the document to define that certain allowable information in a prescribed order in a prescribed number may be included in the Experiences section of the document. For example, the user may wish to mark up the Experiences section of the document to contain four present or past Experience items.
Unfortunately, most users of such computer software applications do not have the requisite understanding of markup languages, such as XML, to correctly apply allowable markup language elements to a document. In particular, some markup languages, such as XML, have rules that dictate allowable markup structure that may be applied to a document. According to many XML schemas, mixed content is either not allowed or creates an error condition for the user. That is, if the user applies a parent XML element in which the user applies a number of child XML elements, the user may not be permitted to include data or text nodes not marked up with structure within the parent element structure where the data or text nodes have a sibling element that has been properly marked up with XML structure. For example, a resume document may be marked up with structure pertaining to the Experience section of the resume. The Experience section may be annotated with a parent element called <experience>. Within the Experience section, child elements called <employer 1>, <employer 2>, and <employer 3> may be included to add structure within the overall experience structure. If the user includes data that is not marked up with data structure, for example, “dates of employment” between the <employer 1> and the <employer 2> elements, the “dates of employment” data is considered an unannotated or unstructured sibling element of the Employer 1 and Employer 2 elements.
According to many Data formats, like XML, this creates a mixed content situation because data is included within the data structure but it has not been annotated with structure of its own and that is not a part of neighboring data it is associated with structure. Even if the data format version in use by a given user allows such a mixed content situation, the user may not be aware that she has failed to annotate the unannotated data with proper structure. If it is acceptable to the user and to the data format version in use by the user to leave this data unannotated, the user may choose to do so but may have a difficult time locating the unannotated data in the document. Accordingly, there is a need for a method and system for showing unannotated text nodes in a document to allow users to know the location and context of the unannotated data.
It is with respect to these and other considerations that the present invention has been made.